home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / p / paints_w / graf_ifs / liesmich.txt < prev   
Encoding:
Text File  |  1996-10-30  |  14.9 KB  |  320 lines

  1.  
  2.      ******************************************************************
  3.      *                                                                *
  4.      *                       GRAFTALE + IFS                           *
  5.      *    Ein Programm zur Erzeugung und Manipulation von Graftalen   *
  6.      *           sowie Iterativen Funktionssystemen (IFS)             *
  7.      *         (Als Zugabe: Einige bekannte rekursive Kurven)         *
  8.      *                                                                *
  9.      *    Autor: Dr. Klaus Fröhlich                                   *
  10.      *           Wormser Str. 18                                      *
  11.      *           6054 Rodgau 3                                        *
  12.      *           Tel. 06106-74599                                     *
  13.      *                                                                *
  14.      ******************************************************************
  15.      
  16.      I.   BEDIENUNG
  17.      II.  WAS SIND GRAFTALE?
  18.      III. ÜBER ITERATIVE FUNKTIONSSYSTEME (IFS) UND DEREN PARAMETERSÄTZE 
  19.      IV.  LITERATURHINWEIS
  20.      V.   ZUM SCHLUß EINE BITTE DES AUTORS (KEINE ANGST, ES GEHT NICHT UM 
  21.           GELD!)
  22.           
  23.  
  24.  
  25.      I. BEDIENUNG (am Anfang, da einfach und relativ kurz)
  26.      =====================================================
  27.      Nach dem Programmstart ist unter dem Menupunkt 'Berechnung' der Eintrag
  28.      'Graftale' vorgewählt (Häkchen). Der vorgegebene Parameter-Satz ent-
  29.      spricht GRAFTAL1.PAR.
  30.      Wollen Sie eine der rekursiven Kurven oder IFS darstellen lassen, so 
  31.      wählen Sie den entsprechenden Eintrag an (Häkchen) und laden die ent-
  32.      sprechenden Parameter-Sätze. Die Schneeflocke wird mit den Parametern 
  33.      der Koch-Kurve dargestellt, das Gras mit denen des Zufallszweigs.
  34.      Abspeichern von Bildern:
  35.      Sie haben die Möglichkeit, die erzeugten Graphiken entweder im ungepack-
  36.      ten Screen-Format (32000 Byte, Endung .PIC) oder in einem gepackten For-
  37.      mat (Extender .PAC) abzuspeichern. Das PAC-Format ist nicht identisch
  38.      mit dem von STAD! Beim Laden eines Bildes wird eine Dateigröße kleiner
  39.      32000 Byte als PAC-Format interpretiert. Das Komprimieren eines Bildes
  40.      dauert ca. 20-30 sec, das Dekodieren geht wesentlich schneller.
  41.      
  42.      Graftale und rekursive Kurven:
  43.      Nach dem Starten der Berechnung werden die Parameter angezeigt. Sie kön-
  44.      nen natürlich verändert werden. Nach Mausklick auf 'weiter' oder Betäti-
  45.      gung der RETURN-Taste klicken Sie auf die Startposition. Bei den Graf-
  46.      talen sollte dieser nahe dem unteren Bildschirmrand sein, ebenso bei 
  47.      Bäumen, Gräsern und Zweigen. Rekursive Kurven können durch einen erneu-
  48.      ten Klick auf die linke Maustaste unterbrochen werden.
  49.      Bei Parametersätzen, die viele Verzweigungen generieren, und größerer 
  50.      Iterationstiefe kann es sein, daß der für den Code reservierte Platz von
  51.      64 kB nicht ausreicht; es wird dann ein entsprechender Hinweis gegeben.
  52.      Sie haben die Möglichkeit, sich mehr Code-Speicher zu reservieren, so es
  53.      der Hauptspeicher zuläßt. Für die meisten Anwendungen kommen Sie mit den
  54.      64 kB reichlich aus. Kleinere Einstellungen werden negiert.
  55.      
  56.      IFS:
  57.      Nach dem Starten der Berechnung erscheint eine Datei-Auswahlbox zum La-
  58.      den eines Parametersatzes. Soll mit einem bereits geladenen Parameter-
  59.      satz gerechnet werden, so geben Sie KEINE Datei an und gehen mit 'OK'
  60.      weiter, andernfalls wählen Sie einen Datensatz. Zum Start der Berech-
  61.      nung klicken Sie mit der linken Maustaste irgendwo auf den Bildschirm.
  62.      Die Berechnung erfolgt so lange, bis erneut ein Klick mit der linken
  63.      Maustaste durchgeführt wird (Taste gedrückt halten, bis Menuleiste er-
  64.      scheint).
  65.      Der Parametersatz (Bedeutung siehe III.) ist eine Textdatei und kann mit 
  66.      einem Texteditor verändert werden. Zum bequemen Ändern der Parameter
  67.      kann ein Editor (z.B. TEMPUS) oder Textverarbeitung, die ASCII-Texte
  68.      bearbeitet (z.B. WORDPLUS) angegeben und dessen Pfad abgespeichert wer-
  69.      den. Wählt man nun unter dem Menupunkt 'Parameter' den Eintrag 'Para-
  70.      meter anzeigen', so wird dieser Editor direkt mit einem wählbaren Para-
  71.      metersatz gestartet.
  72.      Achtung TEMPUS-Benutzer: Vor Abspeichern eines Parameter-Satzes Text ex-
  73.      pandieren, da sonst kein korrektes Einlesen der Daten möglich ist!
  74.      
  75.      Parameter-Box der Graftale: Die Zahl der Generationen ist gewöhnlich
  76.      kleiner als 25. Normalerweise kommt man mit ~10 aus, wie man den Bei-
  77.      spiel-Parametersätzen entnehmen kann. Achtung, die Rechenzeit wächst 
  78.      mit zunehmender Zahl der Generationen exponentiell!
  79.      Erhöht man die Generationen-Zahl, so ist das mit einem Wachstum und zu-
  80.      nehmender Verzweigung der Graftal-Pflanze verbunden. In der Regel müssen
  81.      Sie daher die Seitenlänge reduzieren.
  82.      Bei der Winkel-Einstellung haben Sie verschiedene Möglichkeiten:
  83.      1. Zahl der Winkel 0, kein Winkel-Eintrag
  84.         Bedeutung: Zufallswinkel zwischen -45 und 45 Grad
  85.      2. Zahl der Winkel 0, zwei Winkel-Einträge w1 und w2
  86.        Bedeutung: Zufallswinkel zwischen w1 und w
  87.      3. Zahl der Winkel n, n Winkel-Einträge
  88.         Bedeutung: Zufällige Auswahl unter den n angegebenen Winkel
  89.      Der Start-Code hat einen enormen Einfluß auf das Aussehen des Graftals.
  90.      Experimentieren Sie mal herum!
  91.      Die weitere Bedienung ist selbsterklärend. Alle wichtigen Menu-Punkte
  92.      können auch über Kombinationen mit der ALTERNATE-Taste erreicht werden.
  93.          
  94.  
  95.          II. WAS SIND GRAFTALE? (etwas Theorie zum Verständnis) 
  96.          ======================================================
  97.      Bei den beigefügten rekursiven Kurven befinden sich auch solche für
  98.      Bäume, Zweige und Gräser. Eine ungleich professionellere und natür-
  99.      lichere Darstellung von Pflanzen läßt sich mit Hilfe von Graftalen er-
  100.      reichen. Graftale sind wie Fraktale gekennzeichnet durch Selbstähn-
  101.      lichkeit und großem Formenreichtum bei geringfügiger Veränderung von
  102.      Parametern. Für Graftale gibt es allerdings keine mathematischen For-
  103.      meln wie bei den Fraktalen, sie werden vielmehr über sogenannte Pro-
  104.      duktionsregeln erzeugt. Vielleicht kennen Sie eine der zahlreichen
  105.      Life-Simulationen, die es als Public Domain für den Atari gibt. Im Prin-
  106.      zip wird dort ein frei vorgebbares Punktmuster nach bestimmten Regeln 
  107.      von Generation zu Generation verändert. Ähnlich, nur erheblich kom-
  108.      plexer, wird auch bei den Graftalen verfahren. Eine vorgegebene Zei-
  109.      chenfolge wird in ein bestimmtes Bitmuster transformiert, darauf wer-
  110.      den Regeln angewandt, die wieder zu einer Zeichenfolge führen, usw.
  111.      Sehen wir uns einmal die Sache genauer an.
  112.      Erlaubt sind folgende vier Zeichen:
  113.      Zeichen                  Bedeutung
  114.      ---------------------------------------------------------------------
  115.      0,1            Gerade Strecken, Länge einstellbar
  116.      [              Beginn einer Verzweigung. Der Winkel wird zufällig aus
  117.                     den vorgegebenen Winkel-Einstellungen gewählt.
  118.      ]              Ende der Verzweigung
  119.      Es gibt 8 frei definierbare Produktionsregeln. Zu deren Anwendung werden
  120.      die Nullen und Einsen des Codes zu einem Triplett ergänzt (Transfor-
  121.      mation). Es gelten folgende 4 Transformationsregeln: 
  122.  
  123.      1. Eine einzelne 0 oder 1 wird vorn und hinten mit einer 1 ergänzt.
  124.         Beispiel: 1 -> 111, 0 -> 101
  125.      2. Befinden sich mindestens zwei Zahlen (0 oder 1) hintereinander, so
  126.         wird einmal vorn und einmal hinten mit einer 1 ergänzt.
  127.         Beispiel: 10 -> 110 101, 00 -> 100 001, 11 -> 111 111, 01 -> 101 011
  128.      3. Zur Erzeugung des ersten Tripletts zu Beginn einer Verzweigung ([) 
  129.         wird das letzte Element des Hauptstrangs benutzt.
  130.         Beispiel: 0[10] -> 101 [010 101]
  131.      4. Zur Erzeugung des ersten Tripletts nach dem Ende einer Vezweigung (])
  132.         wird das letzte Element des Hauptstrangs benutzt.
  133.         Beispiel: 10[0]1 -> 110 101 [001] 011
  134.          
  135.      Die aus dem Code erzeugten Tripletts werden als Binärzahlen interpre-
  136.      tiert. Über die entsprechende Produktionsregel wird ein neuer Code er-
  137.      zeugt (Generation 1), der wiederum transformiert wird, usw.
  138.      Machen wir uns diesen etwas komplizierten Sachverhalt an Hand eines Bei-
  139.      spiels klar:
  140.  
  141.      Produktionsregeln
  142.      -----------------
  143.      Binärzahl           Regel
  144.       000                 0                        
  145.       001                 1    
  146.       010                 0
  147.       011                 1
  148.       100                 0
  149.       101                 00[01]
  150.       110                 0
  151.       111                 0
  152.  
  153.      Startcode: 1
  154.      
  155.      Generation 0
  156.      ------------
  157.      Transformation:
  158.      1         ->   Regel 1        ->   111
  159.      Produktionsregeln: 
  160.      111       ->   0
  161.    
  162.      Generation 1
  163.      ------------
  164.      0
  165.      Transformation:
  166.      0         ->   Regel 1        ->   101
  167.      Produktionsregeln:
  168.      101       ->   00[01]
  169.  
  170.      Generation 2
  171.      ------------
  172.      00[01]
  173.      Transformation:
  174.      00        ->   Regel 2        ->   100 001
  175.      [01]      ->   Regeln 2,3     ->   [001 011]
  176.      Produktionsregeln:
  177.      100       ->   0
  178.      001       ->   1
  179.      [001      ->   [1
  180.      011]      ->   1]
  181.  
  182.      Generation 3
  183.      ------------
  184.      01[11]
  185.      Transformation:
  186.      01        ->   Regel 2        ->   101 011
  187.      [11]      ->   Regeln 2,3     ->   [111 111]
  188.      Produktionsregeln:
  189.      101       ->   00[01]
  190.      011       ->   1
  191.      [111      ->   [0
  192.      111]      ->   0]
  193.  
  194.      Generation 4
  195.      ------------
  196.      00[01]1[00]
  197.      Transformation:
  198.      00        ->   Regel 2        ->   100 001
  199.      [01]      ->   Regeln 2,3     ->   [001 011]
  200.      1         ->   Regeln 1,4     ->   011
  201.      [00]      ->   Regeln 2,3     ->   [100 001]
  202.      Produktionsregeln:
  203.      100       ->   0    
  204.      001       ->   1
  205.      [001      ->   [1
  206.      011]      ->   1]
  207.      011       ->   1
  208.      [100      ->   [0
  209.      001]      ->   1]
  210.  
  211.      Generation 5
  212.      ------------
  213.      01[11]1[01]
  214.      Transformation:
  215.      01        ->   Regel 2        ->   101 011
  216.      [11]      ->   Regeln 2,3     ->   [111 111]
  217.      1         ->   Regeln 1,4     ->   111
  218.      [01]      ->   Regeln 2,3     ->   [101 011]
  219.      Produktionsregeln:
  220.      101       ->   00[01]
  221.      011       ->   1
  222.      [111      ->   [0
  223.      111]      ->   0]
  224.      111       ->   0
  225.      [101      ->   [00[01]
  226.      011]      ->   1]
  227.  
  228.      Generation 6
  229.      ------------
  230.      00[01]1[00]0[00[01]1]
  231.      Die Anwendung der Transformations- und Produktionsregeln ergibt
  232.      01[11]1[01]00[01][01[11]1]
  233.  
  234.      Zur graphischen Darstellung entsprechen Nullen und Einsen jeweils einer
  235.      Geraden mit einstellbarer Seitenlänge. Die Verzweigung erfolgt in einem
  236.      Winkel, der aus den vorgegebenen Einstellungen zufällig ausgewählt wird.
  237.  
  238.  
  239.      Viel Spaß beim Experimentieren! Beachten Sie den großen Einfluß des 
  240.      Startcodes auf die Graftale!
  241.  
  242.      ========================================================================
  243.  
  244.      III. ÜBER ITERATIVE FUNKTIONSSYSTEME UND DEREN PARAMETERSÄTZE
  245.  
  246.      Mit Feldern Seltsamer Attraktoren können sehr variable fraktale Gra-
  247.      phiken erzeugt werden (Standardbeispiel:Sierpinski-Dreieck).
  248.      Als Berechnungsgrundlagen dienen die Funktionen
  249.           x'=a11*x+a12*y+b1
  250.           y'=a21*x+b22*y+b2
  251.      Aus n gegebenen Parametersätzen a11, a12, a21, a22, b1 und b2 wird ein
  252.      Datensatz zufällig ausgewählt, in die Gleichungen eingesetzt und der
  253.      Punkt P(x',y') bestimmt. Für den nächsten Punkt gilt dann x=x' und y=y'.
  254.      Diese zufällige Auswahl und Berechnung wird beliebig oft wiederholt.
  255.      Gestartet wird mit einem Zufallswert von x und y. Durch die wechselsei-
  256.      tige Abhängigkeit von x',y',x und y wird ein Iteratives Funktionssystem 
  257.      mit fraktalen Eigenschaften gebildet. Geometrisch gesehen werden affin-
  258.      lineare Transformationen durchgeführt. Eine ausführlichere und mathema-
  259.      tisch exakte Beschreibung ist z.B. von Tobias Blickle in der ST-Computer
  260.      11/91, S.104ff, beschrieben. 
  261.      
  262.      Parameter:
  263.      Die mit einem Text-Editor veränderbare Parameter-Datei ist eine Textda-
  264.      tei mit folgendem Aufbau:
  265.      Zeile 1 beginnt mit fünf Zahlen, die durch Leerzeichen getrennt sind. 
  266.      Sie haben folgende Bedeutung:
  267.      1. Zahl: Anzahl der Parameter-Sätze
  268.      2. Zahl: x(min)
  269.      3. Zahl: y(min)
  270.      4. Zahl: x(max)
  271.      5. Zahl: y(max)
  272.      x(min),y(min),x(max) und y(max) bilden das relative (Welt-)Koordinaten-
  273.      system, dessen Ursprung P(x(min),y(min)) die linke untere (!) Ecke des 
  274.      Bildschirms bildet, P(x(max),y(max)) die rechte obere (!) Ecke. Durch 
  275.      die freie Bestimmbarkeit des Bezugssystems wird die Darstellungsweise
  276.      sehr flexibel.
  277.      Optional kann sich an die fünf Zahlen ein freier Text, z.B. die Bildbe-
  278.      zeichnung, anschließen.
  279.      Die Länge einer Zeile ist auf 80 Zeichen begrenzt.
  280.      Nach einer Zeile mit den Parameter-Bezeichnungen folgen n Zeilen mit den
  281.      Datensätzen, die sich jeweils in einer Zeile befinden müssen. 
  282.      Die einzelnen Parameter haben folgenden Einfluß:
  283.           a11, a22: Stauchung/Spreizung in X- bzw. Y-Richtung
  284.           a12, a21: Verzerrung nach rechts/links
  285.           b1 , b2 : X/Y-Koordinaten der Eckpunkte
  286.      Wenn Sie ein wenig mit einem einfachen Parametersatz (z.B. FENSTER.PAR)
  287.      herumspielen, werden Sie bald eigene Fraktale entwerfen können. Für ei-
  288.      gene Entwicklungen ist es oft erleichternd, die Bildschirm-Auflösung auf
  289.      dem relativen Koordinatensystem abzubilden, d.h. x(min)=0, y(min)=400 (!
  290.      eigentlich 399, doch läßt sich mit 400 leichter rechnen), x(max)=640
  291.      (ebenfalls der Einfachheit halber), y(max)=0 (!). 
  292.  
  293.      ========================================================================
  294.      
  295.                          IV. LITERATURHINWEIS
  296.                          ====================
  297.                          
  298.      Graftale und rekursive Kurven sind ausführlich in dem Buch
  299.      
  300.           Karl-Heinz Becker und Michael Dörfler
  301.           Dynamische Systeme und Fraktale
  302.           Vieweg-Verlag
  303.           
  304.      behandelt. Wenn Sie sich für Fraktale (Mandelbrot-, Julia- und Newton-
  305.      Mengen) interessieren, so haben Sie hier das Buch der Wahl. Denken Sie
  306.      ja nicht, Sie wüßten schon alles über Apfelmännchen; hier werden Sie
  307.      eines Besseren belehrt!
  308.       
  309.      ========================================================================
  310.      
  311.      V. ZUM SCHLUß EINE BITTE DES AUTORS (KEINE ANGST,ES GEHT NICHT UM GELD!)
  312.      
  313.      Ich würde mich sehr freuen, wenn Sie mir gelungene Parametersätze für
  314.      Graftale und/oder IFS zuschicken würden. Die gesammelten Werke werden
  315.      allen Teilnehmern zugänglich gemacht. Also: Wir hören voneinander, nicht 
  316.      wahr?     
  317.  
  318.      ======================== ENDE DES TEXTES ===============================         
  319.  
  320.